package com.ftg.learn.chapter01;

/**
 * 字节
 *
 * @author 布衣
 */
public class ByteCode {

    //链表  ：  接雨水问题 .

    // 双指针  ：

    //    1 - 10
    public static void main(String[] args) {
        //时间复杂度  ：  o(n) n为长度

//        o(10) o(1)
//        o(5)
        //双指针
        int sum = 0;
        for (int i = 1, max = 10; i < max; i++, max--) {
            sum += (i + max);
        }
        System.out.println("总和为 : " + sum);

        System.out.println("===>第二个例子,双向指针");

        int[] arr01 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        // o(n) n arr01.length
        for (int i = 0; i < arr01.length; i++) {
            if (arr01[i] == 8) {
                System.out.println("有");
                break;
            }
        }
        //二分
        int[] arr02 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        int left = 0;
        int right = arr02.length - 1;
        while (left < right) {
            int middle = (left + right) >>> 1;
            if (arr02[middle] == 8) {
                System.out.println("有");
                break;
            } else if (arr02[middle] < 8) {
                left = middle + 1;
            } else {
                right = middle - 1;
            }
        }
        //字节的问题 ：
//        链表 ： 快慢指针
    }
}
